Designers Corner with Prof. Mike Smith
Part 1
Part 2
Bugs
The first bug we found on our prototype board was the spelling of Demonstration
on the silkscreen. The PCB layout software doesnt have a spelling checker! (A
spelling checker in a PCB layout tool is not as crazy as it seems; a spelling consistency
checker would catch several common problems.) We liked the name Demonstation, and kept it.
The second bug was a classic. We had connected the power supply connector
on the board with reversed polarity: opposite to the plug on our power supply brick. (You
will understand this problem if you have ever seen the little diagram for the tip and the
ring that is usually printed on a power supply brick.) I dont think I have ever
fabricated a board that has not suffered from some kind of error from a mix-up between
male and female, plugs and sockets, or components in backwards, upside down, or inside
out. This first Demonstation bug was relatively easy to fix; we turned the connector
around and soldered it on the board backwards.
We completed a quick check on voltages and power supply currents and were
ready to try an Ethernet connection. Nothing happened. After poking around for a few
minutes we found the reset signal on the PHY chip was being pulled low continuously. After
a little thought we realized this was because the keeper circuit in the CPLD (also
connected to the reset signal) was holding the reset low. We fixed this by changing the
default behavior of the CPLD reset pin and tried again. Lo and behold the Ethernet
connection LEDs on the Demonstation started blinking! From that point on we didnt
find any more errors in the analog portion of Demonstation, because that was the part we
had finished early and several people had checked it thoroughly.
As we continued with debugging the Demonstation over the next month, we
found about four more problems in the digital section, which was finished last and was not
checked by as many people as the analog section. Most of the remaining bugs were due to
errors on the schematic, not the design itself. Some bugs were due to mix-ups over names:
confusion between SRAM_WE_N and SRAM_WR_N, for example. This is a very common problem:
errors often occur in handing off information between engineers.
|
|
A typical bug. The signal SRAM_WR_N on the FPGA (on the left) should
have been connected to SRAM_WE_N on one bank of the SRAM (on the right). This was just a
simple mix-up in using WR for write enable at the same time as WE for write enable. Other
than having multiple people check the schematic over and over again, there is no easy way
to catch an error like this. Fortunately, with access to the signals, these sorts of
problems can easily be fixed using an FPGA. |
Every one of the remaining Demonstation bugs we fixed by cutting a PCB
track and/or adding a wire or two. These fixes are often called yellow wire
fixes, because of the common use of thin single-strand wire covered with a yellow plastic
sleeve. (You can see some of these wired fixes on the underside of the Demonstation.) We
couldnt have made most of these simple fixes, however, if we had not been able to
reprogram the logic in the CPLD or FPGA.
Table of Contents
Previous
Next